二维数组合并
输入这样一个数组
1 2 3 4
| [ ['A', 'B'], ['C', 'D'], ]
|
要求经过处理得到这样一个结果, 也就是 2x2 = 4个
1 2 3 4 5 6
| [ 'AC', 'AD', 'BC', 'BD', ]
|
或者这个数组
1 2 3 4 5
| [ ['A', 'B'], ['C', 'D'], ['E', 'F', 'G'], ]
|
要求经过处理得到这样一个结果, 也就是 2x2x3 = 12个
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| [ 'ACE', 'ACF', 'ACG', 'ADE', 'ADF', 'ADG', 'BCE', 'BCF', 'BCG', 'BDE', 'BDF', 'BDG', ]
|
代码也很简单,没啥难度,只是做一下记录
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| let arr = [ ['A', 'B'], ['C', 'D'], ['E', 'F', 'G'], ]
const foo = (origin, index = 1, next) => { let result = [] if (origin.length === 1 || origin.length === 0) { return origin[0] || [] } if (index === 1) { next = origin[0] } next.forEach(ele => { origin[index].forEach(item => { result.push(ele + item) }) }) if (index === origin.length - 1) { return result } return foo(origin, index + 1, result) } console.log('result', foo(arr))
|